есть примерно такой код
function upload() {
var resTxt = _id("uploadResult");
var form = _id("uploadForm");
var formdata = new FormData(form);
var xhr = new XMLHttpRequest();
xhr.open("POST", "fileservlet");
xhr.onreadystatechange = function() {
console.log('readyState= ' + this.readyState);
if (this.readyState == 2) {
resTxt.innerHTML = "Uploading... ";
}
if (this.readyState == 3) {
if(resTxt.innerHTML.length < 200)
resTxt.innerHTML = resTxt.innerHTML + ".";
}
if (this.readyState == 4) {
if(this.status != 200) {
var msg = "ошибка: " + (this.status ? this.statusText : "запрос не удался");
resTxt.innerHTML += msg;
}
else {
resTxt.innerHTML += "Done";
}
}
}
xhr.send(formdata);
}
код работает, за одним исключением
я ожидаю что readyState == 2 будет сразу
потом сколько-то раз (больше одного) выдаст readyState == 3
и только в конце readyState == 4
но нет
все 2, 3, 4 выводит в конце
тестировал на файлах размером 1Гб
браузер FF 57
я чего-то не понимаю ?